<?php 
require_once 'empresa_business.php';
class eventoBusiness{
	public static function verificaDisponibilidade($args){
		$l = $args['id_local_atual']; //variavel de controle
		$inicio = $args['dt_inicio_locacao_'.$l];
		$inicio = explode('/',$inicio);
		$inicio_time  = $args['time_inicio_locacao_'.$l]; 
		$inicio_data = $inicio[2].'-'.$inicio[1].'-'.$inicio[0]." ".$inicio_time;
		 
		$fim = $args['dt_final_locacao_'.$l];
		$fim = explode('/',$fim);
		$fim_time  = $args['time_final_locacao_'.$l];
		$fim_data = $fim[2].'-'.$fim[1].'-'.$fim[0]." ".$fim_time;
		//
		 
		//
		$sql = "select * from `local` l where l.id_local not in
 
			(select GROUP_CONCAT(l.id_local) from local l 
							inner join evento_local el on l.id_local = el.id_local
			where 
				
				dt_final_alocacao  BETWEEN '".$inicio_data."' and '".$fim_data."' or
				dt_inicio_alocacao  BETWEEN '".$inicio_data."' and '".$fim_data."' or
				'$inicio_data'		BETWEEN  dt_inicio_alocacao and dt_final_alocacao or 
				'$fim_data' BETWEEN dt_inicio_alocacao and dt_final_alocacao
					
					
			GROUP BY l.id_local)  "; //bsuca todas as salas que nao estejam nessa data 
		//echo $sql;
		$rs = dbManager::getArrayObj($sql);
		
		return $rs;

	}
	public static function novoEvento($args){
		$nm_evento = $args['nm_evento'];
		$ds_evento = $args['ds_evento'];
		$Evento = new Evento();
		$Evento->ds_evento = $ds_evento;
		$Evento->nm_evento = $nm_evento;
		$Evento->id_pessoa_juridica = EmpresaBusiness::getEmpresaByIdUsuario($_SESSION['usuario']->id_usuario)->id_pessoa_juridica;
		$Evento = dbManager::persist($Evento);
		//
		$locais = $args['locais_id'];
		$locais = explode(',',$locais);
		$menor_inicio = null;
		$maior_final = null;
		foreach ($locais as $key=>$id){
			$evento_local = new  EventoLocal();
			$id_local = $args['local_select_'.$id];
			$id_evento = $Evento->id_evento;
			$data_inicio = explode('/',$args['dt_inicio_locacao_'.$id]);
			$data_inicio = $data_inicio[2].'-'.$data_inicio[1].'-'.$data_inicio[0];
			$data_final = explode('/',$args['dt_final_locacao_'.$id]);
			$data_final = $data_final[2].'-'.$data_final[1].'-'.$data_final[0];
			
			$dt_inicio_alocacao = $data_inicio." ".$args['time_inicio_locacao_'.$id];
			$dt_final_alocacao = $data_final." ".$args['time_final_locacao_'.$id];
			
			if(strtotime($menor_inicio) > strtotime($dt_inicio_alocacao) || $menor_inicio == null){
				$menor_inicio = $dt_inicio_alocacao;
			}
			if(strtotime($maior_final) < strtotime($dt_final_alocacao)){
				$maior_final = $dt_final_alocacao;
			}
			$evento_local->id_local = $id_local;
			$evento_local->id_evento = $id_evento;
			$evento_local->dt_inicio_alocacao = $dt_inicio_alocacao;
			$evento_local->dt_final_alocacao = $dt_final_alocacao;
			$evento_local = dbManager::persist($evento_local);
			//
			foreach($args['equipamento_'.$id] as $j=>$equipamento){//para cada equipamento da sala!
				$evento_local_equipamento = new EventoLocalEquipamento();
				$evento_local_equipamento->id_evento_local  = $id_evento_local = $evento_local->id_evento_local;
				$evento_local_equipamento->id_equipamento = $equipamento;
				$evento_local_equipamento = dbManager::persist($evento_local_equipamento);
			}
			
			
		}
		 
		$Evento->dt_inicio = $menor_inicio;
		$Evento->dt_final = $maior_final;
		
		dbManager::persist($Evento);
		return true;
		
		//
		
	}
	public static function getAllEventosToCalendar($args){
		$vetor = array();
		$evento = new EventCalendar();
		if($args['id_segmento'] != ''){
			$segmento = " and id_segmento = ".$args['id_segmento'];
		}
		$sql = "SELECT id_evento as id , nm_evento as title , dt_inicio as start , dt_final as 'end'
		, DATE_FORMAT(dt_inicio,'%d/%m/%Y %H:%i:%s') as data_inicio
		, DATE_FORMAT(dt_final,'%d/%m/%Y %H:%i:%s') as data_final
		  FROM `evento` e
			inner join pessoa_juridica pj on  e.id_pessoa_juridica = pj.id_pessoa_juridica
			
			where 1=1 ".$segmento."
		order by start ";
		 
		$rs = dbManager::getArrayObj($sql);
		 return $rs;
	}
	
	public static function getFutureEvents($args){
		if($args['id_segmento'] != ''){
			$segmento = " and id_segmento = ".$args['id_segmento'];
		}
		$sql = "SELECT id_evento as id , nm_evento as title , dt_inicio as start , dt_final as 'end'
		, DATE_FORMAT(dt_inicio,'%d/%m/%Y %H:%i:%s') as data_inicio
		, DATE_FORMAT(dt_final,'%d/%m/%Y %H:%i:%s') as data_final
		  FROM `evento` e 
		inner join pessoa_juridica pj on  e.id_pessoa_juridica = pj.id_pessoa_juridica
		where  dt_inicio >= now()    ".$segmento." order by start ";
		$rs = dbManager::getArrayObj($sql);
		return $rs;
	}
	public static function getMeusEventos($args){
		$usuario = $_SESSION["usuario"];
		$id_usuario = $usuario->id_usuario;
		$sql = "SELECT DISTINCT id_evento as id , nm_evento as title , dt_inicio as start , dt_final as 'end'
		, DATE_FORMAT(dt_inicio,'%d/%m/%Y %H:%i:%s') as data_inicio
		, DATE_FORMAT(dt_final,'%d/%m/%Y %H:%i:%s') as data_final from evento e
		inner join pessoa_juridica  pj on pj.id_pessoa_juridica =  e.id_pessoa_juridica 
		inner join pessoa_juridica_responsavel pjr on pjr.id_pessoa_juridica = pj.id_pessoa_juridica
		inner join pessoa_fisica pf on pf.id_pessoa_fisica =  pjr.id_pessoa_fisica
		inner join usuario u on pf.id_pessoa_fisica = u.id_pessoa_fisica
		where id_usuario = $id_usuario ";
		$rs = dbManager::getArrayObj($sql);
		return $rs;
		
	}
	public static function getAllInfomacoesByIdEvento($id_evento){
		$sql = " SELECT id_evento as id , nm_evento , ds_evento
		, DATE_FORMAT(dt_inicio,'%d/%m/%Y %H:%i:%s') as dt_inicio
		, DATE_FORMAT(dt_final,'%d/%m/%Y %H:%i:%s') as dt_final, 
		pj.nm_pessoa_juridica,
		pj.cnpj,
		s.nm_segmento
		from evento  e
		inner join pessoa_juridica pj on pj.id_pessoa_juridica = e.id_pessoa_juridica
		inner join segmento s on s.id_segmento = pj.id_segmento
		where id_evento = $id_evento ";
		$rs = dbManager::getArrayObj($sql);
		return $rs[0]; 
	} 
	public static function getAllLocaisByIdEvento($id_local){
		$sql = "SELECT nm_local , nr_capacidade , ds_local , DATE_FORMAT(dt_inicio_alocacao,'%d/%m/%Y %H:%i:%s' ) as dt_inicio_alocacao,
		DATE_FORMAT(dt_final_alocacao,'%d/%m/%Y %H:%i:%s' ) as dt_final_alocacao
		
		FROM `evento_local` el
		inner join local l on el.id_local = l.id_local
		where id_evento = $id_local";
		$rs = dbManager::getArrayObj($sql);
		return $rs;
	}
	
}
class EventCalendar{
	public $id = null;
	public $title  = "";
	public $start = "";
	public $end = "";
}
?>